#include "UdpServer.hpp"
#include <memory>

// .udp_client local-ip local-port
// .udp_client 127.0.0.1 8888

// .udp_client local-port
// .udp_client 8888
// int main(int argc, char *argv[])
// {
//     if (argc != 2)
//     {
//         // std::cerr << "Usage: " << argv[0] << "  local-ip server-port" << std::endl;
//         std::cerr << "Usage: " << argv[0] << "  server-port" << std::endl;
//         exit(0);
//     }

//     // std::string ip = argv[1];
//     uint16_t port = std::stoi(argv[1]);

//     // uint16_t port = 8899;
//     // std::string ip = "127.0.0.1";

//     EnableScreen();
//     // std::unique_ptr<UdpServer> usvr = std::make_unique<UdpServer>(ip,port); // C++14标准
//     std::unique_ptr<UdpServer> usvr = std::make_unique<UdpServer>(port); // C++14标准

//     usvr->InitServer();
//     usvr->Start();
//     return 0;
// }

// 博客测试
// int main()
// {
//     // UdpServer user1;
//     // UdpServer user2 = user1; // 禁止赋值
//     // UdpServer user3(user1);  // 禁止拷贝

//     EnableScreen();
//     std::unique_ptr<UdpServer> usvr = std::make_unique<UdpServer>(); // C++14标准

//     usvr->InitServer(); // 初始化服务端
//     usvr->Start();      // 启动服务端
//     return 0;
// }


// // .udp_client 
// int main()
// {
//     uint16_t port = 8899;
//     std::string ip = "127.0.0.1";

//     EnableScreen();
//     std::unique_ptr<UdpServer> usvr = std::make_unique<UdpServer>(ip,port); // C++14标准

//     usvr->InitServer();
//     usvr->Start();
//     return 0;
// }

// // .udp_client local-ip local-port
// // .udp_client 127.0.0.1 8888
// int main(int argc, char *argv[])
// {
//     if (argc != 3)
//     {
//         std::cerr << "Usage: " << argv[0] << "  local-ip server-port" << std::endl;
//         exit(0);
//     }

//     std::string ip = argv[1];
//     uint16_t port = std::stoi(argv[2]);

//     EnableScreen();
//     std::unique_ptr<UdpServer> usvr = std::make_unique<UdpServer>(ip,port); // C++14标准

//     usvr->InitServer();
//     usvr->Start();
//     return 0;
// }


// .udp_client local-port
// .udp_client 8888
int main(int argc, char *argv[])
{
    if (argc != 2)
    {
        std::cerr << "Usage: " << argv[0] << "  server-port" << std::endl;
        exit(0);
    }

    uint16_t port = std::stoi(argv[1]);

    EnableScreen();
    std::unique_ptr<UdpServer> usvr = std::make_unique<UdpServer>(port); // C++14标准

    usvr->InitServer();
    usvr->Start();
    return 0;
}